/**
 * 
 */
package br.pesquisa.lsystem.gui;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.util.List;

import br.pesquisa.lsystem.Celula;
import br.pesquisa.lsystem.Interpretador;

public class SimpleCellPanel extends CellPanel {
	private static final long serialVersionUID = -8999754794732369889L;

	public SimpleCellPanel(MainFrame frame) {
		super(frame);
		setBackground(Color.WHITE);
	}

	@Override
	public void init() {
	}

	@Override
	public void doStart() {
	}

	@Override
	public void doUpdate(Interpretador<Celula> interpretador) {
		Dimension dimension = getPreferredSize();
		setBounds(0, 0, dimension.width, dimension.height);
		repaint();
	}

	@Override
	public void doStop(Interpretador<Celula> interpretador) {
	}

	@Override
	public void paint(Graphics g) {
		super.paint(g);
		Graphics2D g2 = (Graphics2D) g;

		int x = 0;
		int y = 0;
		for (List<Celula> estado: getEstados()) {
			for (Celula celula : estado) {
				g2.drawRect(10, 10, 20, 15);
				g2.drawString(celula.getLetra(), 18, 22);
				g2.translate(25, 0);
				x += 25;
			}
			y += 25;
			g2.translate(-x, 25);
			x = 0;
		}
	}

	public Dimension getPreferredSize() {
		int height = getEstados().size() * 26;
		int width = (getMaxElementos() + 1) * 25;

		return new Dimension(width, height);
	}
}